First photon correlated time-of-flight sensor

ABSTRACT

A time-of-flight (TOF) sensor includes a light source, a plurality of avalanche photodiodes, and a plurality of pulse generators. Control circuitry is coupled to the light source, the plurality of avalanche photodiodes, and the plurality of pulse generators, and the control circuitry includes logic that when executed by the control circuitry causes the time-of-flight sensor to perform operations. The operations include emitting the light from the light source, and receiving the light reflected from an object with the plurality of avalanche photodiodes. A plurality of pulses is output from the individual pulse generators corresponding to the individual avalanche photodiodes that received the light, and a timing signal is output when the plurality of pulses overlap temporally. A time is calculated when a first avalanche photodiode in the plurality of avalanche photodiodes received the light.

TECHNICAL FIELD

This disclosure relates generally to optical sensors. In particular,examples of the present invention are related to time-of-flight sensors.

BACKGROUND INFORMATION

Interest in three dimension (3D) cameras is increasing as the popularityof 3D applications continues to grow in areas such as imaging, movies,games, computers, user interfaces, facial recognition, objectrecognition, augmented reality, and the like. A typical passive way tocreate 3D images is to use multiple cameras to capture stereo ormultiple images. Using the stereo images, objects in the images can betriangulated to create the 3D image. One disadvantage with thistriangulation technique is that it is difficult to create 3D imagesusing small devices because there must be a minimum separation distancebetween each camera in order to create the three dimensional images. Inaddition, this technique is complex and therefore requires significantcomputer processing power in order to create the 3D images in real time.

For applications that require the acquisition of 3D images in real time,active depth imaging systems based on time-of-flight measurements aresometimes utilized. Time-of-flight cameras typically employ a lightsource that directs light at an object, a sensor that detects the lightthat is reflected from the object, and a processing unit that calculatesthe distance to the objected based on the round-trip time it takes forthe light to travel to and from the object.

A continuing challenge with the acquisition of 3D images is balancingthe desired performance parameters of the time-of-flight camera with thephysical size and power constraints of the system. For example, thepower requirements of time-of-flight systems meant for imaging near andfar objects may be considerably different. These challenges are furthercomplicated by extrinsic parameters (e.g., desired frame rate of thecamera, depth resolution and lateral resolution) and intrinsicparameters (e.g., quantum efficiency of the sensor, fill factor, jitter,and noise).

BRIEF DESCRIPTION OF THE DRAWINGS

Non-limiting and non-exhaustive examples of the invention are describedwith reference to the following figures, wherein like reference numeralsrefer to like parts throughout the various views unless otherwisespecified.

FIG. 1 is a diagram that shows one example of a time-of flight (TOF)sensor, in accordance with the teachings of the present disclosure.

FIG. 2 illustrates time-of-flight data from an example time-of-flightsensor that is not the sensor of FIG. 1.

FIGS. 3A-3B show examples of logic, and timing of the logic, that may beimplemented in the time-of-flight sensor of FIG. 1, in accordance withthe teachings of the present disclosure.

FIG. 4 depicts an example of additional logic that may be included inthe time-of-flight sensor of FIG. 1, in accordance with the teachings ofthe present disclosure.

FIG. 5 illustrates an example method of calculating time-of-flight, inaccordance with the teachings of the present disclosure.

Corresponding reference characters indicate corresponding componentsthroughout the several views of the drawings. Skilled artisans willappreciate that elements in the figures are illustrated for simplicityand clarity and have not necessarily been drawn to scale. For example,the dimensions of some of the elements in the figures may be exaggeratedrelative to other elements to help to improve understanding of variousembodiments of the present invention. Also, common but well-understoodelements that are useful or necessary in a commercially feasibleembodiment are often not depicted in order to facilitate a lessobstructed view of these various embodiments of the present invention.

DETAILED DESCRIPTION

Examples of an apparatus and method for a first photon correlatedtime-of-flight sensor are described herein. In the followingdescription, numerous specific details are set forth to provide athorough understanding of the examples. One skilled in the relevant artwill recognize, however, that the techniques described herein can bepracticed without one or more of the specific details, or with othermethods, components, materials, etc. In other instances, well-knownstructures, materials, or operations are not shown or described indetail to avoid obscuring certain aspects.

Reference throughout this specification to “one example” or “oneembodiment” means that a particular feature, structure, orcharacteristic described in connection with the example is included inat least one example of the present invention. Thus, the appearances ofthe phrases “in one example” or “in one embodiment” in various placesthroughout this specification are not necessarily all referring to thesame example. Furthermore, the particular features, structures, orcharacteristics may be combined in any suitable manner in one or moreexamples.

A single photon avalanche photodiode (SPAD) is photodiode that is biasedaround its avalanche point to absorb and detect single photons. When theSPAD is properly biased in Geiger mode (with reverse voltage above theavalanche breakdown value), it waits for a charge to enter its internalelectrical field and trigger an avalanche. Each avalanche generates apulse. Since the SPAD has an inner jitter<100 ps, SPADs can be used totime measurements with high precision.

Generally, time-of-flight image sensors work by emitting light (e.g.,coherent pulses of light, which may be from a monochromatic light sourcelike a laser diode or the like). The pulses of light are reflected andreceived by the image sensor or camera. The time-of-flight for thephotons to travel from the system to an object and return to the systemis measured and used to determine distance. See e.g., FIG. 1 andassociated discussion for one example of a time-of-flight system.

Free charge carriers, that are not related to the absorption of incidentlight, may sometimes be generated in the biased semiconductor material(e.g., silicon, germanium, etc.). These carriers may be generatedrandomly at a rate called the “dark count rate” (DCR). Similarly, abackground light photon, can also be absorbed at any time (randomly)during the exposure. The background light photon occurrence is more orless stochastic depending on the illumination level (Poissondistribution) and should be different for pixels under the samebackground illumination. A synchronous light photon occurs when a returnpulse of light—that was emitted from the light source in the system—hitsthe sensor. This is thus not stochastic and should be similar for pixelsreceiving the same signal.

By summing all inputs of a group of N SPADs over a large number offrames, one can obtain a histogram of data (see e.g., FIG. 2) for ahomogenous scene. However, background light and/or DCR also causes SPADbreakdown at random times, distributed more or less equally over thefull integration period. Using SPADs for time-of-flight (TOF) distancemeasurements generally implies dealing with a lot of data due tobackground light and DCR. In some SPAD time-of-flight sensors, thedevice may take a large number of frames to build a histogram (see e.g.,FIG. 2) and distinguish a return signal from background and DCR.However, this requires storing and processing data, and filtering thehistogram to find the signal peak among all the data. These steps mayrequire lots of memory and processing power. Moreover, by averaging ahistogram filled with noise, it is possible to calculate a wrongestimation for the return signal.

Accordingly, proposed here is a calculation of overlapping (correlated)pulses (generated in response to a SPAD receiving a photon) in order toreduce error and the processing power required to calculate thetime-of-flight and subsequent distance measurements. This is achieved byoutputting a timing signal for the correlated pulses. Additionally, theinstant disclosure further calculates when the first photon in areflected light pulse is received, and when a last photon in a reflectedlight pulse is received. This may be achieved by measuring the risingand falling edges of the timing signal. If the timing for the first andlast photon is known, the system can measure the correlation (timebetween first and last photons). This indicates the reflectivity of thetarget and is desirable in LiDAR applications.

FIG. 1 is a block diagram that shows one example of a time-of-flightsystem 100 in accordance with the teachings of the present disclosure.Time-of-flight system 100 includes light source 102, lens 116, pluralityof pixels 120 (including first pixel 122), and controller 126 (whichincludes control circuitry, memory, etc.). Controller 126 is coupled tolight source 102, and plurality of pixels 120 (including first pixel122). Plurality of pixels 120 is positioned at a focal length f_(lens)from lens 116. As shown in the example, light source 102 and lens 116are positioned at a distance L from object 130. It is appreciated thatFIG. 1 is not illustrated to scale and that in one example the focallength f_(lens) is substantially less than the distance L between lens116 and object 130. Therefore, it is appreciated that for the purposesof this disclosure, the distance L and the distance L+focal lengthf_(lens) are substantially equal for the purposes of time-of-flightmeasurements in accordance with the teachings of the present invention.As illustrated, plurality of pixels 120, and controller 126 arerepresented as separate components. However, it is appreciated thatplurality of pixels 120 and controller 126 may all be integrated onto asame stacked chip sensor and may also include a time-to-digitalconverter (or a plurality of time-to-digital converters, with each pixelof four or more SPADs associated with a corresponding one of theplurality of time-to-digital converters). In other examples, pluralityof pixels 120, and controller 126 may be integrated onto a non-stackedplanar sensor. It is also appreciated that each pixel (or even eachSPAD) may have a corresponding memory for storing digital bits orsignals for counting detected photons.

Time-of-flight system 100 may be a 3D camera that calculates image depthinformation of a scene to be imaged (e.g., object 130) based ontime-of-flight measurements with plurality of pixels 120. Each pixel inplurality of pixels 120 determines depth information for a correspondingportion of object 130 such that a 3D image of object 130 can begenerated. Depth information is determined by measuring a round-triptime for light to propagate from light source 102 to object 130 and backto time-of-flight system 100. As illustrated, light source 102 (e.g., avertical-cavity surface-emitting laser) is configured to emit light 104to object 130 over a distance L. Emitted light 104 is then reflectedfrom object 130 as reflected light 110, some of which propagates towardstime-of-flight system 100 over a distance L and is incident uponplurality of pixels 120 as image light. Each pixel (e.g., first pixel122) in plurality of pixels 120 includes a photodetector (e.g., one ormore single-photon avalanche diodes) to detect the image light andconvert the image light into an electric signal (e.g., image charge).

As shown in the depicted example, the round-trip time for pulses of theemitted light 104 to propagate from light source 102 to object 130 andback to plurality of pixels 120 can be used to determine the distance Lusing the following relationships in Equations (1) and (2) below:

$\begin{matrix}{T_{TOF} = \frac{2L}{c}} & (1) \\{L = \frac{T_{TOF} \times c}{2}} & (2)\end{matrix}$where c is the speed of light, which is approximately equal to 3×10⁸m/s, and T_(TOF) corresponds to the round-trip time which is the amountof time that it takes for pulses of the light to travel to and from theobject as shown in FIG. 1. Accordingly, once the round-trip time isknown, the distance L may be calculated and subsequently used todetermine depth information of object 130. Controller 126 is coupled toplurality of pixels 120 (including first pixel 122), and light source102 and includes logic that when executed causes time-of-flight system100 to perform operations for determining the round-trip time.

As shown, individual pixels (e.g., first pixel 122) may include a SPADcoupled to a quenching circuit (e.g., resistor R (Q)), and an analog todigital voltage converter (represented in the current example as aninverter) is coupled between the SPAD and the quenching circuit. Asshown in graph 108, when a photon is received, a large voltage drop(e.g., V (OUT)) occurs in the SPAD but then the voltage is returned to asteady state voltage via the quenching circuit. A digital waveform isoutput from the analog to digital converter in response to the avalanchebreakdown occurring in the diode.

In some examples, time-of-flight sensor 100 is included in a handhelddevice (e.g., a mobile phone, a tablet, a camera, etc.) that has sizeand power constraints determined, at least in part, based on the size ofthe device. Alternatively, or in addition, time-of-flight system 100 mayhave specific desired device parameters such as frame rate, depthresolution, lateral resolution, etc. In some examples, time-of-flightsensor 100 is included in a LiDAR system.

FIG. 2 illustrates a histogram 200 showing a sum of all photons from anexample time-of-flight sensor that is not the sensor of FIG. 1. As shownin FIG. 2 and described above, by summing all inputs of a group of NSPADs over a large number of frames, one can obtain a histogram 200 ofdata. The depicted example represents data from four SPADs over 100frames. As shown, the return light signal occurred at time correspondingto the bin 90. The background light and/or DCR caused triggering atrandom times, distributed more or less equally over the full integrationperiod, from 0 to 100 bins. Thus, as illustrated, using SPADs fortime-of-flight distance measurements generally implies dealing with alot of data due to background light and DCR, since the system needs totake a large number of frames to build histogram 200 and distinguish areturn signal from background light and DCR. This requires lots ofmemory and processing power. As described below, examples in accordancewith the teachings of the present disclosure provide an architecturethat may be used with the system in FIG. 1 in order to avoid storinglarge quantities of data as a histogram, and also reduce the processingpower required to calculate time-of-flight measurements.

FIG. 3A shows one example of logic 300A, and timing of the logic 300B,that may be implemented in the time-of-flight sensor of FIG. 1, inaccordance with the teachings of the present disclosure. The logic 300A,and timing of the logic 300B, depicted, makes binning of time-of-flightdata unnecessary and therefore cuts down on the required memory andprocessing for the system, because no histogram data (like that depictedin FIG. 2) is generated. By using photon arrival time correlation, thesystem is able to suppress the amount of background noise and DCR data.It is appreciated that the “logic” shown here and elsewhere may beimplemented in hardware, software, or a combination of the two.

As shown in the logic diagram 300A, each SPAD (e.g., SPADs 1-4) iscoupled to a respective pulse generator 301A-301D. As shown, eachavalanche event from the SPADs is received by pulse generators 301A-301Dand the pulse generators output a pulse with a specific width (T_(WIN)).The pulses are then received by two NAND gates 303A and 303B, and theoutput of NAND gates 303A and 303B are received by NOR gate 305. Thusthe system then only processes the overlap of the output from the pulsegenerators: effectively AND-gating all inputs (one of skill in the artwill appreciate that AND(A,B,C,D)=NOR[NAND(A,B),NAND(C,D)]). Thus theall-SPAD output sends out a pulse only where the pulses from the pulsegenerators overlapped temporally. By doing so, the system only acceptspulses that are within a T_(WIN) interval (and are thus correlated). Thesystem could also accept less restrictive combinations. It is possiblethat a 4-input logic diagram can have a variable threshold for thenumber of overlapping input pulses. One of ordinary skill in the artwill appreciate that logic diagram 300A is just one example logicdiagram, and there are many equivalent circuits that can achieve thesame or similar result. Moreover, the diagram employs four SPADs, andfor architectures with more than four SPADs additional combinations willneed to be verified, requiring additional logic.

The operations of logic 300A are depicted in timing diagram 300B where alight pulse (e.g., from an IR laser) is emitted, and the received lightpulse is incident on the sensor. In the present case, the threshold ofdetection of overlapping pulses has been set to two. So the system wouldonly process if any combination of two inputs are correlated over aT_(WIN) interval. As shown, SPAD 1 broke down randomly (e.g., due tostray light or DCR) unrelated to when the received light pulse hit thecamera. SPAD 2 broke down due to a photon from the received light pulse(which created one of the “correlated pulses”). SPAD 3 also broke downdue to a photon from the received light pulse. Like SPAD 1, SPAD 4 brokedown randomly (e.g., due to stray light or DCR), and not when the lightpulse was received. Regardless of when or why an individual SPAD breaksdown, its respective pulse generator (e.g., pulse generator 301A-301D)will output an electrical pulse. Because, in the depicted example, SPADs2 and 3 broke down close together (temporally) within an intervalT_(WIN) the pulses emitted by their respective pulse generators overlapfor a period of time. Accordingly, the “all SPAD output” (e.g., NOR gate305) sends out a timing signal (e.g., AND(PULSE 2, PULSE 3)). Since theother pulses (pulse 1 and 4) did not occur within the same temporalwindow, nothing is output as a result of these pulses. Accordingly, thesystem will only output a timing signal when a plurality of SPADs breakdown within a short T_(WIN) temporal window (e.g., when a light pulse isreceived by the sensor system). Thus no binning or excessive processingis required since the system only registers a light pulse when an actualreflected light pulse is received. Put another way, only the data outputfor the SPADs that have triggered/broke down within an interval T_(WIN)will be processed by one or more time to digital converters (TDCs).

In the depicted example a cluster of four SPADs was used. A cluster ofthese four SPADs may form a single pixel for use with one or more TDCs.However, one of skill in the art will appreciate that any number ofSPADs may be used with one or more TDCs (e.g., six SPADs per TDC, eightSPADs per TDC, etc.), in accordance with the teachings of the presentdisclosure. In a chip, there will be many clusters of SPADs. For examplein some time-of-flight sensors there may be (320×240) SPADs, andclusters of 2×2 SPADs may form a pixel. Accordingly, the system has160×120=19200 pixels.

FIG. 3B depicts timing diagram 300C which is similar to timing diagram300B in FIG. 3A. However, FIG. 3B shows timing for a circuit with sixSPADs that are all gated together (not just four). In the depictedexample, it takes three SPADs all firing within the span of T_(WIN) togenerate a timing signal. Also, timing diagram 300C has been labeled tobetter illustrate how the rising edge and the falling edge of the timingsignal may be used to calculate when the first photon is received with aSPAD and when the last photon is received with a SPAD. It is appreciatedthat this information may be used to calculate reflectivity, inaccordance with the teachings of the present disclosure.

As shown, t1 is the arrival time of the last photon (rising edge), whichcaused the timing signal to be produced; t2 is the falling edge of thefirst photon's generated pulse, which caused the timing signal to end.Accordingly, t2−T_(WIN) is the arrival time of the first photon. Thus,the arrival time of both the first and last photons to hit the six pixelsystem, and that are correlated within T_(WIN) with a number ofoccurrence of 3, are known. If the system only measures the rising edgeof ALL_SPAD_OUT, it measures only the arrival time of the last photon(which can be useful). However, in some examples, the first pulsearrival time may be preferable. By measuring the falling edge, andknowing T_(WIN) (see e.g., calibration test structure 413 in FIG. 4),the system can extract the arrival time of the first photon. Thecorrelation (i.e., the time between first and last photons in a singleT_(WIN)) may be calculated by subtracting the arrival time of the firstphoton from the arrival time of the last photon. This may indicate thereflectivity of the target and is highly desirable in LiDARapplications.

FIG. 4 depicts additional logic 400 that may be included in thetime-of-flight sensor of FIG. 1, in accordance with the teachings of thepresent disclosure. As depicted, there may be any number of AND gates403 (see e.g., FIG. 3) which output the timing signal (“CORR_OUT”) inresponse to the SPAD breakdown and subsequent pulse generation by theplurality of pulse generators (e.g., PULSE 0-PULSE N, depicted). The ANDgate(s) 403 are coupled to two time to digital converters (TDCs) 409Aand 409B. AND gate(s) 403 are also coupled to first D flip-flop 405A,second D flip-flop 407A, third D flip-flop 405B, and fourth D flip-flop407B. Between first D flip-flop 405A and AND gate(s) 403 are one or moreinverters. Second D-flip flop 407A is coupled to first D flip-flop 405Ato receive a lock signal. Similarly fourth D-flip flop 407B is coupledto third D flip-flop 405B to receive a lock signal. It is appreciatedthat once a valid timing signal is read out, the logic depicted may lock(e.g., not output any more time-of-flight measurements) despiteadditional timing signals being output from the AND gates 403. Thismakes it so the system needs minimal memory (because only onetime-of-flight measurement is calculated per TDC 409A and 409B).Subsequent time-of-flight measurements may be performed once the resetsignal is received by first D-flip flop 405A, second D-flip flop 407A,third D-flip flop 405B, and fourth D-flip flop 407B. In some examples,the logic 400 may repeat itself many times in the sensor, and each TDC409A or 409B has 24 or fewer (e.g., 12) bits of memory.

By having a scheme of consecutive k mini-frames, the device ensures avalid return signal for all pixels after all mini frames. As stated,TDCs 409A 409B will be locked once a valid signal arrives, and beprevented from overwriting if a second valid timing signal occurs forthe remaining mini-frames. It is appreciated that the system my repeatmany mini-frames and readout the data all at once, after all the miniframes. Each mini frame will include SPAD reset and light pulseemission, and then exposure. Since TDCs 409A and 409B are locked, asstated, there is no need to accumulated additional internal data. Thesystem also conserves power since TDCs 409A and 409B do not performcalculations for other redundant data or background photons.

In the depicted example, TDCs 409A and 409B are also coupled to digitalcore 411 which may calculate the arrival time of the first photon, thearrival time of the last photon, and the correlation (which may be usedto calculate reflectivity of the target). Digital core 411 may include amicrocontroller or the like, and may have memory such as RAM, ROM, orthe like. As stated above, in order to perform all of these calculationsit may be necessary for the system to know the actual pulse width outputfrom the pulse generators. Accordingly, calibration test structure 413is coupled to digital core 411 and calibrates the system to know thetrue value of T_(WIN).

FIG. 5 illustrates an example method 500 of calculating time-of-flight,in accordance with the teachings of the present disclosure. One of skillin the art will appreciate that blocks 501-509 in method 500 may occurin any order and even in parallel. Moreover blocks may be added to orremoved form method 500 in accordance with the teachings of the presentdisclosure.

Block 501 shows emitting light from a light source structured to emitthe light (e.g., a diode with the correct bandgap). In some examples,the light is emitted with a laser emitter which may be visible (e.g., ared, green, or blue laser) or non-visible (e.g., infrared or ultravioletlaser). In other examples, non-laser diodes may be employed. In someexamples, the control circuitry (e.g., specific processor containinglogic described above, general purpose processor, or the like) iscoupled to the light source to control the light source and emit lightpulses at intervals that are pre-defined or determined during operation(e.g., depending on the ambient light conditions, the type and frequencyof light pulses emitted from the light source may change).

Block 503 illustrates receiving the light pulse reflected from an objectwith a plurality of avalanche photodiodes structured to receive thelight (e.g., a correct bias voltage applied to the photodiodes, and thephotodiodes include a semiconductor with the right bandgap). Theindividual photons reflected from the object may cause the plurality ofavalanche photodiodes to break down. This may cause an analog drop involtage in the diode. The drop in voltage may then be quenched with aquenching circuit coupled to the plurality of avalanche photodiodes. Thequench may return the internal voltage of the avalanche photodiodes backto a baseline level.

Block 505 shows, in response to receiving the light with the pluralityof avalanche photodiodes, outputting a plurality of pulses fromindividual pulse generators coupled to individual avalanche photodiodesin the plurality of avalanche photodiodes. The individual pulsegenerators that output the pulses are coupled to the individualavalanche photodiodes that received the light. One example of theindividual pulse generators maybe an inverter, and when the voltage dropacross the avalanche photodiode reaches a certain threshold, theinverter outputs a digital signal. The width of the digital signal maybe responsive to the amount of time that the analog signal is above (orbelow) the threshold value of the inverter (see e.g., FIG. 1). In otherexamples, other circuitry may be used to generate a pulse with apredetermined fixed pulse-width. It is appreciated that the pulse widthmay be pre-programmed into the device or maybe adjusted with use (e.g.,by the user, automatically depending on light conditions, or the like).

Block 507 illustrates in response to outputting the plurality of pulses,outputting a timing signal from control circuitry when the plurality ofpulses overlap temporally. For example several avalanche photodiodes ina pixel may receive photons (and break down) at roughly the same time,their respective individual pulse generators may output a pulse, and thepulses overlap temporally. Accordingly, the control circuitry would thenoutput a timing signal during the period of time where the pulsesoverlapped temporally (see e.g., FIG. 3 timing diagram 300B “all SPADout”). Thus, in some examples, the timing signal has a duration equal toor less than the fixed pulse duration time of the plurality of pulsesoutput from the plurality of pulse generators.

In some examples, outputting the timing signal may include receiving theplurality of pulses with AND gates coupled to the plurality of pulsegenerators, and the AND gates output the timing signal. It isappreciated that the plurality of AND gates may include a plurality ofNAND gates coupled to one or more NOR gates, or other equivalent/similarlogic structures.

Block 509 shows in response to the timing signal, calculating a timewhen a first avalanche photodiode in the plurality of avalanchephotodiodes received the light. It is appreciated the timing signal hasa rising edge and a falling edge, and the plurality of pulses have afixed pulse duration time. Thus, the time when the first avalanchephotodiode received the light is calculated by subtracting the fixedpulse duration time from when the falling edge of the timing signaloccurs.

Block 511 depicts calculating the time-of-flight using the time when thefirst avalanche photodiode received the light. In some examples, it isalso possible to calculate when a last avalanche photodiode in theplurality of photodiodes received the light. This is because the risingedge of the timing signal is when the last avalanche photodiode brokedown. While in some examples, it may be preferable to calculate when thefirst photon was received and not the last, in other examples it may beuseful to calculate both times. If the system uses both edges (this mayrequire two TDCs, see e.g., FIG. 4), the system can measure thecorrelation (time between first and last photons in a single T_(WIN))and this indicates the reflectivity of the target and is desirable inLiDAR applications. Put another way, the system can calculate adifference in time between when the first avalanche photodiode receivedthe light and when the last avalanche photodiode received the light as away to measure reflectivity.

As stated above, in some examples calculating the time-of-flightincludes using a first time to digital converter (TDC) and a second TDCcoupled to receive the timing signal and included in the controlcircuitry. Additionally, control circuitry may include a first Dflip-flop and a second D flip-flop coupled to the first D flip-flop toreceive a lock signal from the first D flip-Flop. And the second Dflip-flop is coupled to the first TDC. Similarly, a fourth D flip-flopmay be coupled to a third D flip-flop to receive a lock signal from thethird D flip-Flop. And the fourth D flip-flop is coupled to the secondTDC.

The above description of illustrated examples of the invention,including what is described in the Abstract, is not intended to beexhaustive or to limit the invention to the precise forms disclosed.While specific examples of the invention are described herein forillustrative purposes, various modifications are possible within thescope of the invention, as those skilled in the relevant art willrecognize.

These modifications can be made to the invention in light of the abovedetailed description. The terms used in the following claims should notbe construed to limit the invention to the specific examples disclosedin the specification. Rather, the scope of the invention is to bedetermined entirely by the following claims, which are to be construedin accordance with established doctrines of claim interpretation.

What is claimed is:
 1. A time-of-flight (TOF) sensor, comprising: alight source structured to emit light; a plurality of avalanchephotodiodes structured to receive the light; a plurality of pulsegenerators, wherein individual pulse generators in the plurality ofpulse generators are electrically coupled to individual avalanchephotodiodes in the plurality of avalanche photodiodes; and controlcircuitry coupled to the light source, the plurality of avalanchephotodiodes, and the plurality of pulse generators, wherein the controlcircuitry includes logic that when executed by the control circuitrycauses the time-of-flight sensor to perform operations, including:emitting the light from the light source; receiving the light reflectedfrom an object with the plurality of avalanche photodiodes; in responseto receiving the light with the plurality of avalanche photodiodes,outputting a plurality of pulses from the individual pulse generatorscorresponding to the individual avalanche photodiodes that received thelight; in response to outputting the plurality of pulses, outputting atiming signal when the plurality of pulses overlap temporally; and inresponse to the timing signal, calculating a time when a first avalanchephotodiode in the plurality of avalanche photodiodes received the light.2. The TOF sensor of claim 1, wherein the timing signal has a risingedge and a falling edge, and wherein the plurality of pulses have afixed pulse duration time, and wherein the time when the first avalanchephotodiode received the light is calculated by subtracting the fixedpulse duration time from when the falling edge of the timing signaloccurs.
 3. The TOF sensor of claim 2, wherein the timing signal has aduration equal to or less than the fixed pulse duration time of theplurality of pulses output from the plurality of pulse generators. 4.The TOF sensor of claim 1, wherein the control circuitry furtherincludes logic that when executed by the control circuitry causes thetime-of-flight sensor to perform operations, including: in response tothe timing signal, calculating when a last avalanche photodiode in theplurality of photodiodes received the light.
 5. The TOF sensor of claim4, wherein the control circuitry further includes logic that whenexecuted by the control circuitry causes the time-of-flight sensor toperform operations, including: calculating a difference in time betweenwhen the first avalanche photodiode received the light and when the lastavalanche photodiode received the light.
 6. The TOF sensor of claim 1,wherein the control circuitry includes a plurality of AND gates tooutput the timing signal.
 7. The TOF sensor of claim 6, wherein theplurality of AND gates include a plurality of NAND gates coupled to oneor more NOR gates.
 8. The TOF sensor of claim 1, wherein the controlcircuitry further includes logic that when executed by the controlcircuitry causes the time-of-flight sensor to perform operations,including: calculating a time-of-flight, using the timing signal, withthe control circuitry.
 9. The TOF sensor of claim 8, wherein thetime-of-flight is calculated using a first time to digital converter(TDC) and a second TDC coupled to receive the timing signal and includedin the control circuitry.
 10. The TOF sensor of claim 9, wherein thecontrol circuitry includes: a first D flip-flop; a second D flip-flopcoupled to the first D flip-flop to receive a lock signal from the firstD flip-Flop, and wherein the second D flip-flop is coupled to the firstTDC; a third D flip-flop; and a fourth D flip-flop coupled to the thirdD flip-flop to receive a lock signal from the third D flip-flop, andwherein the fourth D flip-flop is coupled to the second TDC.